<?php
/**
 * Created by PhpStorm.
 * User: admin
 * Date: 2016/10/11
 * Time: 9:17
 */

namespace Library;


class Tools
{
    /**
     * 不是手机号码
     * @param $val
     * @return bool
     */
    static function not_mobile_phone($val){
        if($val){
            return preg_match('/^0?(13|15|18|14|17)[0-9]{9}$/',$val) ?
                false: '手机号码格式不正确';
        }else{
           return '手机号码不能为空';
        }

    }

    /**
     * 不是密码
     *
     * 6-16,必须包含大小写字母和数字的组合，不能使用特殊字符
     * @param $val
     * @return bool
     */
    static function not_password($val){
        if($val){
            return preg_match('/[\w\W]{6,22}/',$val) ?
                false: '密码格式为6-22个字符形式';
        }else{
            return '密码不能为空';
        }

    }

    /**
     * 生成随机字符串
     *
     * @param int $n 默认是24个字符
     * @return string
     */
    static function random_string($n = 24 ){
        $str = "abcdefghijklmnopqrstuvwxyz";//输出字符集
        $len = strlen($str)-1;
        $s = '';
        for($i=0 ; $i<$n; $i++){
            $s .= $str[rand(0,$len)];
        }
        return $s;
    }

    /**
     * 生成随机字符串(数字)
     *
     * @param int $n 默认是24个字符
     * @return string
     */
    public static function random_number($n = 6)
    {
        $arr = [0,1,2,3,4,5,6,7,8,9];
        $code = '';
        for($i=0;$i< $n;$i++){
            $code .= $arr[rand(0,9)];
        }
        return $code;
    }

    /**
     * 隐藏手机或固定电话号码中间4位
     *
     * @param $phone
     * @return mixed
     */
    static function hide_tel($phone){
        $IsWhat = preg_match('/(0[0-9]{2,3}[\-]?[2-9][0-9]{6,7}[\-]?[0-9]?)/i',$phone); //固定电话
        if($IsWhat == 1){
            return preg_replace('/(0[0-9]{2,3}[\-]?[2-9])[0-9]{3,4}([0-9]{3}[\-]?[0-9]?)/i','$1****$2',$phone);
        }else{
            return  preg_replace('/(1[358]{1}[0-9])[0-9]{4}([0-9]{4})/i','$1****$2',$phone);
        }
    }

    /**
     * 截取字符串
     * @param $value
     * @param int $limit
     * @param string $end
     * @return string
     */
    static function limit($value, $limit = 100, $end = '...')
    {
        if (mb_strlen($value) <= $limit) return $value;

        return rtrim(mb_substr($value, 0, $limit, 'UTF-8')).$end;
    }

    /**
     * 生成订单号
     * @return string
     */
    static function random_order_id(){
        return date('Ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8);
    }

    static function Sec2Time($time){
        if(is_numeric($time) && $time>0){
            $value = array(
                "hours" => 0,"minutes" => 0, "seconds" => 0,
            );
            if($time >= 3600){
                $value["hours"] = floor($time/3600);
                $time = ($time%3600);
            }
            if($time >= 60){
                $value["minutes"] = floor($time/60);
                $time = ($time%60);
            }
            $value["seconds"] = floor($time);
            //return (array) $value;
            $t= '支付剩余时间：'.$value["hours"] ."小时". $value["minutes"] ."分".$value["seconds"]."秒";
            Return $t;

        }else{
            return '订单已关闭';
        }
    }

    /**
     * 生成签名
     * @param $params
     * @param $key
     * @return string
     */
    static function create_sign($params,$app_key){
        ksort($params);
        $sign = '';
        foreach($params as $key=>$val){
            if($key != 'Sign' && $key != 'sign' && $val != ''){
                $sign .= $key.$val;
            }
        }
        return strtoupper(md5($app_key.$sign.$app_key));
    }



}